1. Field of the Invention
The present invention relates to an apparatus for generating a 2D spreading code and method for the same, especially to an apparatus for generating a 2D spreading code used in OFDM system to increase subscriber number and method for the same.
2. Description of Related Art
The wireless communication system has rapid progress from 1G analog systems and 2G digital systems like GSM, IS-95A to 3G digital systems by the advance of hardware technology and coding technology. The 3G digital systems, such as WCDMA, CDMA2000, can provide high-speed data and voice transmission. The transmission throughput of wireless communication system can be improved by multiple accessing schemes. For example, frequency division multiple access (FDMA) divides the total bandwidth to a plurality of frequency sub-channels for user. Time division multiple access (TDMA) separates users by allocating short and distinct time slots for users. On the contrary, in a code division multiple access (CDMA) scheme, all users transmits at the same time on the same carrier using a wider bandwidth than in a TDMA system. The signals of users are distinguished by assigning different spreading codes with low cross-correlation properties. Advantages of the spread spectrum techniques are immunity against multi-path distortion, simple frequency planning, high flexibility, variable rate transmission, better security and resistance of interference.
FIG. 1 shows a schematic diagram of a prior art CDMA transmitter 100, which includes a data processor 101, a PN code generator 102, a first operator 103, an orthogonal code generator 104 and a second operator 105. The data processor 101 outputs a voice data, which is operated, by the first operator 103, with a PN code generated by the PN code generator 102. The PN code is used to indicate a specific base station and provide signal synchronization. The resulting signal is then operated, by the second operator 105, with an orthogonal code generated by the orthogonal code generator 104. The orthogonal code is used to discriminate different users in the same base station.
Taking IS-95CDMA system as an example, it has an orthogonal code generator 104 generating a Walsh-Hadamard code according to following recursion relationship:
      H          2      ⁢      n        =      [                                        H            n                                                H            n                                                            H            n                                                              H              _                        n                                ]  wherein n is an integer larger than zero and Hn is obtained by negating Hn. The Walsh-Hadamard cod is selected from one row of the Walsh-Hadamard matrix, which has mutual orthogonal rows. The higher-order Walsh-Hadamard matrix can be obtained by above recursion relationship with lower-order Walsh-Hadamard matrix. FIG. 2 shows a schematic view of Walsh-Hadamard matrix of different orders. In Walsh-Hadamard matrix of i-th order, the spreading factor SF=2i and the number of codewords in i-th order is 2i. More particularly, the number of codeword is 1 in 0-th layer (SF=20=1), namely C1,0=1. The number of codeword is 2 in 1-st layer (SF=21=2), namely C2,0=(1,1) and C2,1(1,−1). The number of codeword is 4 in 2-nd order (SF=22=4), namely C4,0=(1,1,1,1), C4,1=(1,1,−1,−1), C4,2=(1,−1,1,−1) and C4,3=(1,−1,−1,1). Below lists example of several Walsh-Hadamard matrix:
            H      2        =          [                                    1                                1                                                1                                              -              1                                          ]        ,            H      4        =          [                                                  H              2                                                          H              2                                                                          H              2                                                          -                              H                2                                                        ]        ,  …  ⁢          ,          ⁢            H              2        N              =          [                                                  H                              2                                  N                  -                  1                                                                                        H                              2                                  N                  -                  1                                                                                                        H                              2                                  N                  -                  1                                                                                        -                              H                                  2                                      N                    -                    1                                                                                          ]      
For example, in IS-95CDMA system, the transmitter thereof generates 64 Walsh-Hadamard codes for users in real time by lookup table or hardware generator such as DSP circuit or ASIC unit.
The wide-band CDMA system generally requires a Walsh-Hadamard with higher order and demands an efficient system for generating larger Walsh-Hadamard matrix. U.S. Pat. No. 5,751,761 discloses an orthogonal variable spreading factor (OVSF) code generator for CDMA system. The OVSF code generator generates codeword of different length for different subscriber amount. The minimum codeword length in 3G systems is 4 and the codeword generated by the OVSF code generator can be adjusted with regard to subscriber amount. The base station with larger subscriber amount can be assigned with OVSF code having fewer codeword such 4.
The OVSF code disclosed in U.S. Pat. No. 5,751,761 is one-dimensional code and generated by a simple scheme. FIG. 3 shows a prior art OVSF code generator 20, which comprises a counter 200, a Walsh function selector 202, a plurality of AND gates 204 and a plurality of OR gates 206. The OVSF code generator 20 is composed of a plurality of shift registers (not shown) and operated at predetermined chip rate such as 1.2288 MHz. For example, the counter 200 may comprise 10 registers for generating 10-bit Walsh-Hadamard code. The Walsh function selector 202 selects a particular Walsh-Hadamard code with reference to spreading factor (SF) and code index. The code index is illustrated in FIG. 2 as c1=[0011] and c2=[0101]. As shown in this figure, the inputs of the AND gates 204 are connected to corresponding registers and outputs of the Walsh function selector 202 for logic operation. The plurality of OR gates 206 are connected to outputs of the AND gates 204 for generating desired codeword in serial manner.
U.S. Pat. No. 5,751,761 discloses a one-dimensional (1D) OVSF code generator for CDMA system, which has limited data transmission capability. U.S. pre-grant publication 2003/0210647 discloses a two-dimensional (2D) OVSF code generator for CDMA system, which has better data transmission capability. FIG. 4 shows the coding scheme of the 2D OVSF code generator in publication 2003/0210647, wherein “+” indicates “+1” and “−” indicates “−1”. The coding scheme has also multiple orders. In 2D OVSF code of i-th order, the spreading factor SF=2i and the number of codewords in i-th order is 2i. More particularly, the number of codeword is 1 in 0-th layer (SF=20=1), namely A1,0=1. The number of codeword is 2 in 1-st layer (SF=21=2), namely
      A          2      ,      0        =                    [                                            +                                      +                                                          +                                      -                                      ]            ⁢                          ⁢      and      ⁢                          ⁢              A                  2          ,          1                      =                  [                                            +                                      -                                                          +                                      +                                      ]            .      The number of codeword is 4 in 2-nd layer (SF=22=4), and has codes in upper branch and lower branch. The codes in upper branch are derived by
            A              2        ,        0              =          [                                    +                                +                                                +                                -                              ]        ,namely
            A              4        ,        0              =                  [                                                            A                                  2                  ,                  0                                                                                    A                                  2                  ,                  0                                                                                                        A                                  2                  ,                  0                                                                                    -                                  A                                      2                    ,                    0                                                                                      ]            =                        [                                                    +                                            +                                            +                                            +                                                                    +                                            -                                            +                                            -                                                                    +                                            +                                            -                                            -                                                                    +                                            -                                            -                                            +                                              ]                ⁢                                  ⁢        and                        A              4        ,        1              =                  [                                                            A                                  2                  ,                  1                                                                                    A                                  2                  ,                  1                                                                                                        A                                  2                  ,                  1                                                                                    -                                  A                                      2                    ,                    1                                                                                      ]            =                        [                                                    +                                            -                                            +                                            -                                                                    +                                            +                                            +                                            +                                                                    +                                            -                                            -                                            +                                                                    +                                            +                                            -                                            -                                              ]                .            The lower branch are derived by
            A              2        ,        1              =          [                                    +                                -                                                +                                +                              ]        ,namely
            A              4        ,        2              =                  [                                                            A                                  2                  ,                  0                                                                                    -                                  A                                      2                    ,                    0                                                                                                                          A                                  2                  ,                  0                                                                                    A                                  2                  ,                  0                                                                    ]            =                        [                                                    +                                            +                                            -                                            -                                                                    +                                            -                                            -                                            +                                                                    +                                            +                                            +                                            +                                                                    +                                            -                                            +                                            -                                              ]                ⁢                                  ⁢        and                        A              4        ,        3              =                  [                                                            A                                  2                  ,                  1                                                                                    -                                  A                                      2                    ,                    1                                                                                                                          A                                  2                  ,                  1                                                                                    A                                  2                  ,                  1                                                                    ]            =                        [                                                    +                                            -                                            -                                            +                                                                    +                                            +                                            -                                            -                                                                    +                                            -                                            +                                            -                                                                    +                                            +                                            +                                            +                                              ]                .            
More particularly, all Walsh-Hadamard codes disclosed in publication 2003/0210647 are derived based on either
      A          2      ,      0        =      [                            +                          +                                      +                          -                      ]  for upper branch or
      A          2      ,      1        =      [                            +                          -                                      +                          +                      ]  for lower branch.
The Walsh-Hadamard codes are also limited to 2i in i-th order for 2i users to preserve orthogonal property.